home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 014a / blnks400.zip / BLANKS.DOC < prev    next >
Text File  |  1991-11-13  |  43KB  |  899 lines

  1.      ┌─────────────────────────────────────────────────────────────┐
  2.      │ Trademarked names are the property of the respective owners │
  3.      └─────────────────────────────────────────────────────────────┘
  4.  
  5.                    BLANKs
  6.  
  7.            Copyright (c) 1988-1991 by FM de Monasterio
  8.              Licensed Material - All rights reserved
  9.  
  10.                 Release 4.00
  11.  
  12.  
  13.     SUMMARY
  14.  
  15.     BLANKs is a DOS-based, resident utility which blanks the screen after a
  16.     selectable interval without a keypress.  Intervals as short as 1 minute
  17.     or as long as 60 minutes can be selected.  Selecting 0 minutes disables
  18.     screen blanking; blanking can be reenabled by a subsequent execution of
  19.     the program.
  20.  
  21.     The utility also offers the option of parking hard-disk(s) heads at the
  22.     time of blanking, of blanking the screen at the press of a (selectable)
  23.     hot-key combination, and the use of a password to unblank the (manually
  24.     blanked) screen. See BLANKS.NEW for a description of what is new in the
  25.     current version.
  26.  
  27.     BLANKs is a (terminate-and-stay) resident program which can be executed
  28.     repeatedly to change its parameters without yielding multiple copies to
  29.     memory. It consists of a resident component, that contains the code for
  30.     video blanking/unblanking and for parking the disk, which occupies less
  31.     than 1 kb of RAM, and a non-resident component, that loads the resident
  32.     component, communicates with the resident on further program executions
  33.     and provides other ancillary video services.  BLANKs is compatible with
  34.     DOS version 2.0 through 5.0.
  35.  
  36.  
  37.    REGISTRATION
  38.  
  39.    This software is user-supported; the present release, although lacking the
  40.    options marked by asterisks, is a fully usable program.  You may test this
  41.    release for (in)compatibilities with your system, but after the testing is
  42.    completed you are requested to order a registered copy of the full release
  43.    of the software from the address at the end of this documentation.
  44.  
  45.    If you would rather use this unregistered copy, consider making a donation
  46.    to the Children's Hospital of Washington DC, for indigent children in need
  47.    of medical care.  Every year in the USA, infant mortality claims the lives
  48.    of tens of thousands of children before their first year of life, and most
  49.    of them come from families below poverty level...  Please send to the same
  50.    address a check payable to the "PATIENT CARE FUND, CHILDREN'S HOSPITAL" on
  51.    the obverse, and marked "For Deposit Only" on the reverse.  Donations will
  52.    be sent to Children's Hospital.  Please identify the program for which you
  53.    are making the donation.
  54.  
  55.    --------------------------------------------------------------------------
  56.      BLANKS.REG contains a form needed to register or upgrade this Software
  57.    --------------------------------------------------------------------------
  58.  
  59.    See the final part of this documentation for information on the Licensing,
  60.    Distribution, Warranty, and Limitation of Remedies of this software.
  61.  
  62.                 -----------------
  63.  
  64.  
  65.     1.  GENERAL INFORMATION
  66.  
  67.     The video blanking is obtained by direct commands to the hardware (video
  68.     controller) to turn off/on the video signal.  This is a fast method that
  69.     operates successfully in the IBM PC/XT, PC/AT and in some IBM compatible
  70.     computers installed with MDA, CGA, EGA, VGA, and HERCULES video adapters
  71.     or with IBM-compatible adapters from other manufacturers.  Actually, the
  72.     blanking/unblanking of the video signal was used by the original PC BIOS
  73.     during some CGA video services.
  74.  
  75.     Starting with BLANKs version 3.34, however, blanking of HERCULES adapter
  76.     cards (HGC, HGC+, InColor) is based on a zero-row display method, kindly
  77.     made available by E.C. Raedecker, which preserves the current video mode
  78.     (text or 720 x 348 graphics) of the adapter, except during CGA emulation
  79.     (see switch /A).
  80.  
  81.     NOTICE     The program may not work in some nonIBM microcomputers and it
  82.     ------     should not be used with other video adapter types unless they
  83.             are compatible with the IBM adapter(s) at the register level.
  84.  
  85.  
  86.     Blanking occurs as a result of keyboard and BIOS video inactivity within
  87.     a selectable time interval (of between 1 and 60 minutes), or by pressing
  88.     a selectable hotkey (<Ctrl-B> in the distributed version). Once blanking
  89.     has occurred, press any key to unblank the screen; a <Shift> keypress is
  90.     especially useful for this purpose.
  91.  
  92.     BLANKs can be executed repeatedly to modify resident parameters, without
  93.     resulting in multiple copies to memory. The resident part uses about 800
  94.     bytes of memory.  BLANKs parameters can be specified from the DOS prompt
  95.     or via the environment string 'BLANKS' (see below).
  96.  
  97.     The noncritical messages, i.e. successful or uneventful operation, can be
  98.     redirected to the NUL: device (bit bucket) by the DOS redirection command
  99.     '> NUL.' Critical messages such as operation failures, however, cannot be
  100.     redirected by DOS commands, and are always displayed (unless the "StdErr"
  101.     handle processing of the console output has been modified).
  102.  
  103.     The program performs a cyclic redundancy check every time it is executed.
  104.     If the CRC fails, the program aborts execution as CRC failures indicate a
  105.     modification of the code, and the program should not be used for your own
  106.     protection.
  107.  
  108.  
  109.     CPU VERSIONS
  110.  
  111.     The program is written in assembly language; each version consists of four
  112.     processor-type releases (086, 268, 386 and 486) in which the code has been
  113.     optimized for the CPU types of the 80x86 processor family.  This is needed
  114.     since the x86 processors differ markedly in instruction execution time and
  115.     the incorporation of a memory cache in some CPU types affects such time by
  116.     influencing the speed of both instruction fetching and memory access.
  117.  
  118.     In addition to standard (086) assembly language instructions, the 286, 386
  119.     and 486 releases of the program also use 286-, 386- or 486-specific opcode
  120.     instructions in "real" mode (which is the native mode for 086 processors).
  121.     The type and degree of code optimization vary with the CPU type, and yield
  122.     usually small variations of resident size.
  123.  
  124.                 -----------------
  125.  
  126.     2. USAGE
  127.  
  128.     From the DOS command line or from a batch file, BLANKs is installed (or,
  129.     when already installed, modified) by the command:
  130.  
  131.              BLANKs [t] [/switches] [;comments]
  132.     Where:
  133.  
  134.     A.  INTERVAL [t]
  135.  
  136.     Timed blanking interval (minutes). This is the interval that the program
  137.     waits before blanking the screen in the absence of keyboard, video (BIOS
  138.     mediated), or mouse (INT-33h mediated) activity.  Valid selections are 0
  139.     or a decimal number in the range 1 to 60.  Selecting an interval of zero
  140.     minute disables TIMED blanking; the selection of an interval larger than
  141.     60 defaults to 60 minutes or to the value (within the 1-60 range) of the
  142.     first 2 digits of selections with more than 2 digits.
  143.  
  144.     Typing the letter <T> instead of a number yields a 1-second interval for
  145.     test purposes (see below key <F2> in Status/Usage/Help panel).
  146.  
  147.     Defaults: Null interval = 3  minutes; this default can be changed via an
  148.     environment variable (see below).
  149.  
  150.                 -----------------
  151.  
  152.  
  153.     B.  Switches to modify the default parameters can be entered from:
  154.  
  155.     (1)  The DOS command line (or a batch file)
  156.     (2)  An environment variable with the format 'BLANKS=/SWITCH1.../SWITCHn'
  157.  
  158.     Switches can be given in any order and any character between space (ASCII
  159.     32) and slash (ASCII 47) can be used as a switch delimiter.  The switches
  160.     are not case sensitive and can be entered in any order; an invalid switch
  161.     specification aborts program execution.  (Starting with version 3.17, the
  162.     switch /C is no longer recognized as a program cloning request.)
  163.  
  164.     -------------------------------------------------------------------------
  165.       Asterisks (*) mark items available only in registered program copies
  166.     -------------------------------------------------------------------------
  167.  
  168.  
  169.     SWITCH /Ax
  170.  
  171.     Forces configuration to a specified video adapter. Switch /A bypasses the
  172.     automatic configuration of BLANKs for the adapter detected at the time of
  173.     each execution.  Valid specifications:
  174.  
  175.       /AM   MDA configuration: IBM Monochrome Display Adapter and, in
  176.         text mode only, HERCULES adapters HGC, HGC+, InColor etc.
  177.         The MDA configuration does not restore a graphics mode in
  178.         the HERCULES card.  Uses and restores bit 3 of video port
  179.         3B8h, but forces bits 7 and 1 to 0.
  180.  
  181.       /AH   HGA configuration: HERCULES adapters (HGC, HGC+, InColor)
  182.         in text or graphics mode, but not in CGA emulation.  Uses
  183.         and restores register 6 of video port 3B5h.
  184.  
  185.       /AC   CGA configuration: IBM Color Graphics Adapter, MultiColor
  186.         Graphics Array [MCGA], and compatible adapters.  Uses and
  187.         restores bits 0-3 of port 3D9h and bit 3 of port 3D8h.
  188.  
  189.       /AE   EGA configuration: IBM Enhanced Graphics Adapter and EGA-
  190.         compatible cards.  Resets video ports 3BAh and 3DAh. Uses
  191.         and restores bit 5 of port 3C0h.
  192.  
  193.       /AV   VGA configuration: IBM Video Graphics Array and compatible
  194.         adapters.  Uses video port 3C4h, and uses and restores bit
  195.         5 of port 3C5h.
  196.  
  197.       /A-   Ignore prior forced configuration.  Uses the configuration
  198.         selected by BLANKs for the adapter detected at the time of
  199.         (each) execution.
  200.  
  201.  
  202.     Switch /A is useful if the video adapter type is not identified properly;
  203.     it does not need to be selected unless you want to modify the settings of
  204.     the program (read the above notice on adapter compatibility).
  205.  
  206.     BLANKs (release 3.15 or later) assumes that a CGA whose ROM BIOS contains
  207.     the letters 'COMPAQ' is a monochrome COMPAQ card; if you wish to override
  208.     this assumption, switch /AC forces a CGA color configuration.
  209.  
  210.                       --------
  211.  
  212.     SWITCH /Dn
  213.  
  214.     Adjusts brightness of the display (VGA only).  The brightness change step
  215.     is specified by the sign and value of number <n> ranging from -63 to +63.
  216.  
  217.       /D-n  (for 0 < n < 64): Decrease the brightness of the screen,
  218.         reducing the contrast of the display.
  219.  
  220.       /D+n  (for 0 < n < 64): Increase the brightness of the screen,
  221.         reducing the saturation of the display.
  222.  
  223.       /D0   Restore screen to its original brightness as dictated by
  224.         the settings of the monitor.  Clears the screen.
  225.  
  226.     Defaults:  /D = /D-2, /D1 = /D-1.
  227.  
  228.     Brightness changes are additive. Repeated use of the switch or the use of
  229.     large step numbers yields unreadable displays; use /D0 to restore display
  230.     contrast.  (Switch /D is a sticky parameter, as brightness changes remain
  231.     in effect even if BLANKs is made quiescent or uninstalled.)
  232.  
  233.                     --------
  234.  
  235.   * SWITCH /E
  236.  
  237.     Creates/updates the environment block variable BLANKS=/SWITCH1.../SWITCHn
  238.     in which SWITCH1...SWITCHn are the switches to be implemented when BLANKs
  239.     is executed from the DOS command line without any argument.  Although the
  240.     switch itself is incorporated in the variable as well, it is ignored when
  241.     BLANKs uses the environment variable as input.  See section INSTALLATION,
  242.     for more details.  No defaults.
  243.  
  244.                     --------
  245.  
  246.   * SWITCH /H
  247.  
  248.     Loads the resident in high memory between 640 and 1024 kb, i.e. below the
  249.     1 Mb boundary of conventional RAM but above the RAM area whose allocation
  250.     is always controlled by DOS.  It requires an available upper memory block
  251.     (UMB) of about .8 kb, which is allocated by the program itself either via
  252.     direct XMS requests or, when DOS controls UMB allocations (i.e., DOS 5.0+
  253.     configured under the command DOS=UMB), via DOS calls.  The UMB allocation
  254.     requires an XMS manager implementing the UMB functions 10h and 11h of the
  255.     XMS version 2.0 or higher, and (if such a manager lacks the capability of
  256.     remapping memory) presence of an UMB provider.
  257.  
  258.   * SWITCH /Hn
  259.  
  260.     Optionally, a minimum upper-memory limit for the UMB can be specified via
  261.     switch /Hn, in which <n> is a four-digit, hexadecimal number between A000
  262.     (640 kb) and FFFF (1024 kb), in order to avoid or select specific regions
  263.     of the Upper Memory Area.
  264.  
  265.   * SWITCH /Hn, /Hn@
  266.  
  267.     A (lower-memory) marker can also be installed along with the UMB resident
  268.     via switch /H@ or /Hn@.  This marker uses 144 bytes of lower conventional
  269.     memory; it can be identified in some memory mapping utilities by the name
  270.     <BLANKs @ UMB>, and is released from  memory when BLANKs is uninstalled.
  271.  
  272.     The marker may be used as a reminder that the resident is loaded in upper
  273.     memory, or to help locate the upper-memory installation address with some
  274.     mapping programs or to avoid a potential removal conflict if installation
  275.     of lower-memory and upper-memory residents is interspersed.  (See section
  276.     INSTALLATION, for more details.)
  277.  
  278.     Defaults: Low-memory installation if errors are found during UMB loading;
  279.     upper-memory installation below the specified lower limit if UMBs are not
  280.     available above such limit.
  281.  
  282.                       --------
  283.  
  284.     SWITCH /K±?xn
  285.  
  286.     Hotkey switch. In addition to timed screen blanking, BLANKs allows manual
  287.     blanking of the video by pressing hotkey combination.  The default hotkey
  288.     combination is <Ctrl-B> in the distributed version of the program, but it
  289.     can be changed with this switch in the case of a key-assignment conflict.
  290.     Once the screen has been blanked via the hotkey (manual blanking), it can
  291.     only be unblanked by pressing any key.
  292.  
  293.     BLANKs erases the hotkey from the keyboard buffer so it is not displayed.
  294.     However, a program executed after BLANKs is loaded could save the hotkey.
  295.     This is what happens, for example, with some word processors in which the
  296.     hotkey needs to be erased from the text.
  297.  
  298.       /K+   Enable hotkey operation; this is the default condition
  299.         if an switch argument is not specified (/K = /K+).
  300.  
  301.       /K-   Disable hotkey operation.  Can be reenabled with /K+.
  302.  
  303.     * /K?   Permit selection of a new hotkey combination including
  304.         an alphanumeric key, and one or more of the shift keys
  305.         <Ctrl>, <Alt>, <lt-Shift>, and <rt-Shift>.
  306.  
  307.     * /Kxn  Select <xn> as the hotkey combination, in which <x> is
  308.         a pure alphanumeric character (0-9 or A-Z), and <n> is
  309.         a digit between 4 and 15 only.  This digit corresponds
  310.         to one of the following shifting keys or their sum:
  311.  
  312.             1 = right shift       ------------------------
  313.             2 = left shift     Values higher than 15 or
  314.             4 = Ctrl           lower than 4 are invalid
  315.             8 = Alt           ------------------------
  316.  
  317.     For obvious reasons, <Ctrl> or <Alt>, or both, must be part of a new hot-
  318.     key combination either in switch /K? or /Kxn.  If a hotkey other than the
  319.     default combination is needed routinely, it may be useful to store in the
  320.     DOS environment the variable 'BLANKS=/Kxn' (see INSTALLATION section).
  321.  
  322.                       --------
  323.  
  324.   * SWITCH /M±
  325.  
  326.     Enables/disables the monitoring of video activity mediated by a Mouse via
  327.     interrupt-33h calls. When enabled, switch /M avoids the timed blanking of
  328.     the screen when mouse activity is detected.  Note that switch /M does not
  329.     unblank the screen after manual blanking via the hotkey combination.
  330.  
  331.     * /M+   Enable mouse monitoring; can be disabled with /M[-].
  332.  
  333.     * /M-   Disable mouse monitoring; this is the default condition
  334.         if an argument is not specified at the time of resident
  335.         installation.
  336.  
  337.     Defaults:  /M = /M-
  338.  
  339.     NOTE: The mouse activity of some application programs is not mediated via
  340.     interrupt 33h, but by direct commands; thus, BLANKs will not detect mouse
  341.     activity and the screen will be blanked.
  342.  
  343.     NOTE: There are mouse drivers that can crash the machine if interrupt 33h
  344.     is found to be in use at the time of the driver installation; if you have
  345.     such a driver and would rather not load it prior to BLANKs, then you must
  346.     specify switch /M- at the time of installing BLANKs.
  347.  
  348.                       --------
  349.  
  350.   * SWITCH /P±
  351.  
  352.     Enables/disables the parking of the hard disk(s) upon the manual or timed
  353.     blanking of the screen.  Moves the disk head to the highest disk cylinder
  354.     for each physical disk that can be accessed via interrupt-13h calls (BIOS
  355.     disk services).  Parking is inhibited when BIOS-mediated disk or diskette
  356.     activity is in progress at the time of blanking.
  357.  
  358.     * /P+   Enable hard disk parking; this is the default condition
  359.         if an argument is not specified at the time of resident
  360.         installation.
  361.  
  362.     * /P-   Disable disk parking. (Can be reenabled with /P[+].)
  363.  
  364.     Defaults:  /P = /P+
  365.  
  366.     If BLANKs is installed in a machine lacking hard disks, parking should be
  367.     disabled at the time of installation, as a parking attempt may crash some
  368.     machines with poorly designed BIOSes.
  369.  
  370.     NOTE: Disk-parking-upon-blanking is not available in a special version of
  371.     the program for diskless machines to avoid potential conflicts.
  372.  
  373.                       --------
  374.  
  375.     SWITCH /Q
  376.  
  377.     Disables timed blanking.  The switch has the same effect as specifying an
  378.     interval of 0 minutes for the interval option [t]; it does not affect the
  379.     manual blanking via the hotkey combination.  No defaults.
  380.  
  381.                       --------
  382.  
  383.     SWITCH /U
  384.  
  385.     Uninstalls the resident code from memory.  This request is disregarded if
  386.     the address of any of the interrupts intercepted by the resident has been
  387.     modified since the program was installed.  The revectoring indicates that
  388.     another resident has subsequently hooked the same interrupt(s). Thus, the
  389.     program cannot be uninstalled, because this would leave such interrupt(s)
  390.     pointing to empty memory, and the program would then crash.
  391.  
  392.     The program should be uninstalled only if it is the last resident to have
  393.     been installed. In practice, however, it can also be uninstalled when any
  394.     subsequently installed resident intercepts different interrupts; although
  395.     this increases fragmentation of memory, the resulting "hole" is innocuous
  396.     and can be used by DOS for other purposes (e.g., an environment block).
  397.  
  398.                       --------
  399.  
  400.   * SWITCH /W±?x
  401.  
  402.     The switch controls password-mediated unblanking.  A selected sequence of
  403.     1 to 15 non-shifted, alphanumeric characters, followed by a <right-Shift>
  404.     keypress, must be pressed in correct sequence to unblank the screen after
  405.     a MANUAL blanking.  Rebooting via <Ctrl-Alt-Del> is inhibited.
  406.  
  407.     * /Wx   Specify the password from the DOS command line, which <x>
  408.         is a string of 1 to 15 nonshifted, pure alphanumeric (0-9
  409.         a-z) characters.
  410.  
  411.       /W?   Request to specify a new password of up to 15 nonshifted,
  412.         pure alphanumeric characters. After these characters have
  413.         been typed, press <ENTER> to make this password resident;
  414.         press <Esc> to avoid changing the password or press <Ctrl
  415.         Break> to quit to DOS. The typed characters can be erased
  416.         with the <Backspace> key.
  417.  
  418.         NOTE: If <Enter> is pressed before any valid character is
  419.         typed, the unblanking of the manual blanking of the video
  420.         will occur only after pressing the <Right-Shift> key.
  421.  
  422.     * /W-   Disable password unblanking.
  423.  
  424.     * /W+   Re-enable use of the resident password (if a password had
  425.         not been loaded, the video will unblank only when <Right-
  426.         Shift> is pressed).
  427.  
  428.     Defaults: /W = /W+.
  429.  
  430.     NOTE: Even when enabled, the password is not needed to unblank the screen
  431.     after a TIMED blanking.
  432.  
  433.                       --------
  434.  
  435.     SWITCH /?
  436.  
  437.     Displays the Status/Usage/Help panel(s), which provide information on the
  438.     current program status and settings as well as a summary of the commands.
  439.     More detailed syntax information is displayed by pressing key <F1> or <H>
  440.     (except in a special release of BLANKs for diskless machines).  Press key
  441.     <Esc> or <F2> to return to the previous display.
  442.  
  443.     If the program has not been installed, pressing key <F2> or <S> shows the
  444.     default loading parameters.  If it is installed, pressing key <F2> or <T>
  445.     yields a 1-sec blanking interval for test purposes; the original interval
  446.     is restored after the screen in unblanked by a keypress.  From any panel,
  447.     press key <F7> or <X> to return to the DOS prompt.
  448.  
  449.     Mouse support is also provided for point-and-click key selections. During
  450.     the display of the Help/Syntax/Status panels, the BLANKs resident ignores
  451.     Mouse activity via interrupt 33h.
  452.  
  453.     If this switch is requested and a VGA/EGA adapter is present, the program
  454.     stores the contents of the video palette registers prior to asserting its
  455.     own palette for the Status/Usage/Help display.
  456.  
  457.                   ----------------
  458.  
  459.  
  460.     C.  Comments may be added in the command line after the desired switches
  461.     and must be preceded by a semicolon.  Such comments, which may be useful
  462.     in clarifying batch files, are ignored by the program.
  463.  
  464.     Do not use the redirection and pipe characters in the comments since DOS
  465.     will attempt to implement the implied redirection or pipe request.
  466.  
  467.  
  468.  ------------------------------------------------------------------------------
  469.  
  470.     3.  INSTALLATION
  471.  
  472.  
  473.     DIRECT UPPER-MEMORY AREA LOADING
  474.  
  475.     The utility can self-install the resident in the upper memory area (UMA),
  476.     that is, RAM addresses between 640 kb and 1024 kb of conventional memory,
  477.     via switch /H (or its subfunctions /Hn, /H@, and /Hn@).  Program releases
  478.     prior to version 3.20 lack this feature.
  479.  
  480.     The allocation of UMA blocks (UMBs) is arbitrated by an XMS manager (XMM)
  481.     version 2.0 or higher; the XMM must be installed prior to the UMB-loading
  482.     of the resident.  Allocation also requires the remapping of UMA addresses
  483.     by a UMB provider, when such a task is not implemented by the XMM itself.
  484.     XMMs require DOS version 3.0 or later.
  485.  
  486.     The XMM HIMEM.SYS and the UMB-provider EMM386.EXE are distributed with MS
  487.     DOS 5.0; the allocation of UMBs is controlled by DOS when these 2 drivers
  488.     are installed, and the command 'DOS=UMB' is added to the CONFIG.SYS file.
  489.     Of course, other 386-specific memory managers, such as 386MAX or QEMM386,
  490.     provide both UMB remapping and XMS support.
  491.  
  492.     Switch /Hn, where A000 ≤ n ≤ FFFF (hexadecimal), allows the specification
  493.     of a minimum upper-memory limit for the UMB to avoid UMA regions having a
  494.     very slow access time (or to preserve regions with a fast access time for
  495.     other utilities that require faster times, such as a disk cache or screen
  496.     accelerator), or to avoid fragmentation of the UMA when UMB allocation is
  497.     not controlled by DOS 5, but by the XMM itself.  Such a fragmentation may
  498.     occur when the XMM allocates blocks on a first-fit basis, i.e., the first
  499.     available UMB having the lowest UMA address is allocated, irrespective of
  500.     whether or not a (smaller) block matching the requested size is available
  501.     at a higher UMA address.  Unless the size of the available UMBs increases
  502.     with increasing memory address, first-fit allocation of a small UMB leads
  503.     to the breaking of large UMA blocks into smaller ones, thus hampering the
  504.     UMB installation of larger residents.
  505.  
  506.     When DOS controls the UMB allocation, the program enforces the allocation
  507.     of the resident block on a best-fit basis when <n> is not specified, that
  508.     is, all available blocks are searched (by DOS), and the one matching most
  509.     closely the size requested is allocated.
  510.  
  511.     When DOS controls UMB allocation and <n> is specified, UMBs are allocated
  512.     on a first-fit basis.  While this may contribute to UMA fragmentation, it
  513.     allows for the checking of a minimum memory limit in those cases in which
  514.     the selection or avoidance of a specific UMA region is more important.
  515.  
  516.     Hence, compared to the upper-memory installation provided by the LOADHIGH
  517.     command of DOS 5.0, or similar services provided by some memory managers,
  518.     program self-loading into a UMB has several advantages, including: (1) it
  519.     does not require an initial free block of upper memory of the size of the
  520.     entire program (as opposed to the size of its resident only), (2) it does
  521.     allow user control on the selection of the upper-memory block, and (3) it
  522.     can help reduce UMA fragmentation.
  523.  
  524.     NOTE:
  525.     The address and size of available UMBs can be obtained with MEM.EXE, when
  526.     DOS controls UMB allocation, or with the memory manager itself, when this
  527.     allocation is controlled by 386-specific memory managers. In either case,
  528.     these data can also be obtained with UMAX.EXE, a UMA mapping utility that
  529.     is distributed by the author.
  530.  
  531.  
  532.  
  533.     HIGH-LOADING VIA 386-MEMORY MANAGERS OR DOS 5+
  534.  
  535.     Of course, the resident can also be installed in the UMA via a 386-memory
  536.     manager or via (UMB-linked) DOS 5.0, provided that there is enough memory
  537.     for the actual size of the entire program, and any additional memory that
  538.     may be needed by the loading utility.
  539.  
  540.     To minimize disk storage, the program is distributed as a compressed file
  541.     that expands upon its execution. The difference between the actual loaded
  542.     size and the nominal directory size may create conflicts with high-memory
  543.     loading programs that fail to measure the actual size: When the available
  544.     high memory is not sufficient to permit the file expansion, but is larger
  545.     than the nominal directory size, such programs will load the (compressed)
  546.     utility. The subsequent expansion will then overwrite adjacent memory and
  547.     likely crash the memory manager or DOS.
  548.  
  549.     The program expands by a factor of about 1.33.  Notice that when switches
  550.     /?, /K?, and /W? have been selected, the execution requires an additional
  551.     4,800 bytes of available RAM.
  552.  
  553.  
  554.  
  555.     UPPER-MEMORY UPDATING
  556.  
  557.     When the program has been loaded in the upper memory, it does not require
  558.     a high-memory loading utility to update its resident, and all updates can
  559.     be made by executing the program from the DOS-command line. This obviates
  560.     the cumbersome restriction (of some memory systems) of having to maintain
  561.     a pool of free upper memory simply to load the entire program to update a
  562.     small resident. Program releases prior to version 3.00 lack this feature.
  563.  
  564.  
  565.  
  566.     UPPER-MEMORY DEALLOCATION
  567.  
  568.     If the deallocation of the resident is requested (switch /U) from the DOS
  569.     command line (as opposed to via an upper-memory loading utility), removal
  570.     of the resident is implemented, even if it was installed in the UMA.  The
  571.     confirmation request of versions 3.00 to 3.16 is no longer required.
  572.  
  573.     If deallocation is requested via an upper-memory loading utility, some of
  574.     of these utilities warn that a "resident installation has failed." Such a
  575.     warning is harmless and may be ignored.
  576.  
  577.  
  578.  
  579.     THE ENVIRONMENT VARIABLE 'BLANKS'
  580.  
  581.     When the program is executed from the command line of DOS or a batch file
  582.     without an argument, it searches the DOS environment block for a variable
  583.     having the format:
  584.  
  585.             BLANKS=/SWITCH1/SWITCH2..../SWITCHn
  586.  
  587.     Up to 128 characters are allowed after the equal sign. This string can be
  588.     incorporated to the environment block via the 'SET' command of DOS or via
  589.     switch /E of this program (see below).  Program releases prior to version
  590.     3.14 lack this feature.
  591.  
  592.     While the SET command modifies the current DOS environment block, whether
  593.     it is the global or a local one, switch /E only modifies the global block
  594.     (even when the program is executed via a secondary COMMAND.COM, as in the
  595.     case of shelling out to DOS from an application).   Notice that the local
  596.     environment block is only a copy of the global block and lacks sufficient
  597.     room to increase significantly the length of a variable, and that changes
  598.     made to a local environment are not inherited by the global one.
  599.  
  600.     When searching for the environment variable, the program uses the current
  601.     DOS environment block, whether it is the global or a local one.
  602.  
  603.     The variable can be used to specify a BLANKs default configuration (e.g.,
  604.     /K+/P-/W-/KB8), which can be restored just by executing BLANKs without an
  605.     argument after a temporary change of parameters.  An especially important
  606.     use of the 'BLANKS' variable (particularly since the removal of switch /C
  607.     in version 3.17) is to change the hotkey when the default key combination
  608.     conflicts with that of a foreground application.
  609.  
  610.  
  611.  
  612.     IDENTIFICATION IN MEMORY MAPS
  613.  
  614.     If the resident has been loaded in lower conventional memory, the program
  615.     can be identified by name in usage maps yielded by various memory mapping
  616.     utilities.  Although the program sheds its own copy of the environment at
  617.     installation time (to minimize the resident size), the name
  618.  
  619.                 BLANKs n.nn
  620.  
  621.     will appear in the command line listing for the resident, irrespective of
  622.     the actual content of the DOS command line at the time of loading; <n.nn>
  623.     represents the program revision number (version).  Program releases prior
  624.     to BLANKs 2.20 lack this feature.
  625.  
  626.     If the resident is loaded in upper memory when UMB allocation is mediated
  627.     by the XMS manager directly (e.g. extended memory manager and DOS version
  628.     2 to 4, or DOS 5 not linked to the UMA), however, most memory maps do not
  629.     list the allocated UMB, lump it with other allocated UMBs, or do not show
  630.     the name of the resident.
  631.  
  632.     If UMB allocation is controlled by DOS version 5, the UMB resident can be
  633.     identified with some mapping utilities (e.g., MEM.EXE of MS-DOS) although
  634.     it is listed as "Data" instead of "Program."  Other mapping utilities can
  635.     identify the UMB resident when its associated lower-memory marker is also
  636.     loaded (see switch /H@).  Program releases prior to BLANKs 4.00 lack this
  637.     feature.
  638.  
  639.  
  640.  ------------------------------------------------------------------------------
  641.  
  642.     4.  TECHNICAL INFORMATION
  643.  
  644.     The program intercepts several software or hardware interrupts:
  645.  
  646.         INT 08h - Hardware system timer
  647.         INT 09h - Keyboard
  648.         INT 10h - BIOS video services
  649.         INT 13h - BIOS disk services
  650.         INT 33h - (Microsoft/Logitech) Mouse services
  651.  
  652.     A brief description of these interrupts is given below:
  653.  
  654.     INT 8h is issued 18.2 times per second to update the time-of-the-day BIOS
  655.     counter.  Hence, the timer interrupt service must operate within a period
  656.     of less than about 55 ms, including the overhead imposed by DOS and other
  657.     programs hooking INT 8h.  To reduce overhead, BLANKs uses direct commands
  658.     to the hardware, which are issued after the original interrupt service is
  659.     completed.
  660.  
  661.     INT 9h is issued when any key on the keyboard is pressed or released.  If
  662.     the hotkey is enabled (switch /K+), the screen is blanked when the hotkey
  663.     is pressed.  The hotkey code is removed from the keyboard buffer; the key
  664.     code for the keypress that unblanks the screen is removed from the buffer
  665.     as well (version 3.12+), to allow unconstrained unblanking with any key.
  666.  
  667.     INT 10h implements BIOS video services. The screen blanking is suppressed
  668.     during video activity, but this activity does not unblank the screen once
  669.     blanking has occurred. Due to the monitoring, video speed is decreased by
  670.     a very small percentage.
  671.  
  672.     INT 13h implements the BIOS disk services.  If disk-parking-upon-blanking
  673.     is enabled (switch /P+), such parking is inhibited during BIOS disk(ette)
  674.     activity.  NOTE: Interrupt 13h is not intercepted in a special version of
  675.     BLANKs for computers lacking hard disks; this version is smaller than the
  676.     standard versions by ca. 100 bytes in the resident (and several kilobytes
  677.     in the nonresident) part.
  678.  
  679.     INT 33h (not used by DOS or the BIOS) is used in the (Microsoft/Logitech)
  680.     implementation of calls to the Mouse driver. This interrupt is claimed by
  681.     the Mouse driver during its initialization, and it is used by most mouse-
  682.     aware programs.
  683.  
  684.  
  685.  
  686.     BYPASSING INTERRUPTS
  687.  
  688.     BLANKs bypasses interrupt 8 when a blanking interval of 0 minute has been
  689.     selected (see below).  Interrupt 9 is bypassed only when an interval of 0
  690.     minute and switch /K- (see above) have been selected. When switch /K- has
  691.     been selected along with a nonzero time interval, only the hotkey service
  692.     of interrupt 9 is bypassed. The BIOS interrupt 10h (video) and 13h (disk)
  693.     cannot be bypassed by any of the switches, while the (Microsoft/Logitech)
  694.     Mouse interrupt 33h can be bypassed by switch /M-.
  695.  
  696.     Hence, the two interrupt activities of BLANKs are bypassed by the "0 /K-"
  697.     selection; this may be of use in case of testing potential conflicts with
  698.     other resident programs.
  699.  
  700.  
  701.  
  702.     ERRORLEVELS
  703.  
  704.     Upon completion, the program passes an errorlevel value which can be used
  705.     to check (via ERRORLEVEL commands in a batch file) the outcome of program
  706.     execution.  The following errorlevels may be passed:
  707.  
  708.          Value   Nature of Error
  709.          -----   ------------------------------------
  710.            255   Cyclical redundancy check failure
  711.            255   CPU type cannot execute 286+ version
  712.  
  713.            128   XMM not installed or XMS error in UMB load
  714.             64   Error in update of environment variable
  715.             32   Invalid password format
  716.             16   Invalid hotkey combination
  717.              8   Unknown video adapter
  718.              4   Unable to uninstall resident
  719.              2   Invalid switch request
  720.              1   User <CTRL-BREAK> keypress
  721.              0   Successful execution
  722.  
  723.     Some conditions generating errorlevels 1 through 128 may be additive, and
  724.     the resulting error value may represent more than a single error. Program
  725.     releases prior to BLANKs 2.40 lack this feature.
  726.  
  727.  
  728.  ------------------------------------------------------------------------------
  729.  
  730.     5.  OPERATION REQUIREMENTS & CONFLICTS
  731.  
  732.     BLANKs will fail to operate properly when access to interrupts 8 and 9 is
  733.     denied by another program or resident loaded after BLANKs. This can occur
  734.     with ill-behaved programs that take over the interrupts and fail to chain
  735.     the information to those other utilities tapping the same interrupts (see
  736.     TECHNICAL INFORMATION section), such as some WYSIWYG word processors, GUI
  737.     systems, etc.
  738.  
  739.     In particular, if access to interrupt 9 is denied, keyboard activity will
  740.     fail to unblank a blanked screen; when testing for incompatibilities with
  741.     a given program, make sure that programs voiding the manual blanking when
  742.     <Ctrl-B> is pressed, will permit video unblanking after a timed blanking.
  743.     Programs that deny access to both interrupt 8 and 9 are less of a problem
  744.     as neither manual nor timed blanking is likely to be allowed.  Otherwise,
  745.     you will need to inactivate BLANKs with the command <BLANKS 0 /K-> before
  746.     executing an ill-behaved program or application.
  747.  
  748.     To monitor interrupt 33h, BLANKs must be installed after the mouse device
  749.     driver, as otherwise this driver will not allow access to this interrupt.
  750.     Be aware that some drivers for a well known mouse can crash the system if
  751.     interrupt 33h is in use at the time of installing the driver; the problem
  752.     does not seem to occur with other drivers.
  753.  
  754.     Since the BIOS video services are comparatively slow, many programs write
  755.     directly to video memory instead of using the BIOS services. Because such
  756.     video writes are not detected by BLANKs, screen blanking may occur during
  757.     during the video activity of such programs. Similarly, any mouse activity
  758.     implemented by commands that bypass interrupt 33h will not avoid blanking
  759.     of the screen (as in the case of some desktop publishing programs).
  760.  
  761.  ------------------------------------------------------------------------------
  762.  
  763.  
  764.    6.  LICENSING INFORMATION
  765.  
  766.    This documentation, programs, and other files distributed in this software
  767.    package (the "Software")  are the copyrighted property of FM de Monasterio
  768.    (the "Author"), who provides the Software and licenses its use. All rights
  769.    are reserved.
  770.  
  771.    The file BLANKS.REG contains a form needed to register this Software.
  772.  
  773.    Single User License.  Upon registration, you are granted a nontransferable
  774.    license to use this Software in a single computer at a time.  The Software
  775.    may also be transferred to another computer, provided that the Software is
  776.    used only in one (1) computer at any time; under the license, the Software
  777.    may be installed on a network server.
  778.  
  779.    Site/15-PCs License.  Upon registration, you are granted a nontransferable
  780.    license to use this Software in a single site, or a set of sites, provided
  781.    this Software is not used in more than fifteen (15) computers at any time,
  782.    and that such computers are located exclusively within the site.  Licenses
  783.    for more machines are available at discounted prices.
  784.  
  785.    Refunds Policy.  If a problem notified within ninety (90) days of shipping
  786.    of the registered copy cannot be solved, the registration fee (but not the
  787.    shipping costs) will be refunded upon receiving a written request with the
  788.    original diskette(s) enclosed.
  789.  
  790.    Upgrade Policy.  Program upgrades are limited to licensed users.  Upgrades
  791.    within the same major version (e.g. release 2.00 through 2.99) are free of
  792.    charge if a self-addressed, stamped diskette mailer with a formatted, 360-
  793.    kb diskette is included with the request.  Other upgrades are charged half
  794.    the (single-user/site) registration fee.
  795.  
  796.    Technical Support.  A phone number for technical support is made available
  797.    to site licenses for 100 machines or more; other licensed users must write
  798.    to the Author who will contact them.
  799.  
  800.  
  801.  
  802.    U.S. GOVERNMENT INFORMATION
  803.  
  804.    The use, duplication, or disclosure by the U.S. Government of the Software
  805.    is subject to the restricted rights applicable to commercial software that
  806.    are specified in the subdivision (b.3.ii) of the 'Rights in Technical Data
  807.    and Computer Software' clause, document DFARS 52.227-7013. The contractor/
  808.    manufacturer is FM de Monasterio, P.O. Box 219, Cabin John, MD 20818-0219,
  809.    USA.
  810.  
  811.                 ----------------
  812.  
  813.    DISTRIBUTION
  814.  
  815.    You may distribute this Software via magnetic and/or electronic means, but
  816.    you are specifically prohibited from:
  817.  
  818.     - Charging fees or asking donations in exchange of or payment
  819.       for copies of this Software.
  820.  
  821.     - Distributing this Software with commercial products without
  822.       the written, express permission in advance from the author.
  823.  
  824.     - Distributing this Software via a for-profit organization or
  825.       group, either alone or with other software.
  826.  
  827.     - Modifying any contents of this Software, including, but not
  828.       limited to, the copyright notice and this license.
  829.  
  830.  
  831.    The unauthorized copying, decompiling or disassembling of this Software is
  832.    prohibited.  Any other use of this Software is also prohibited without the
  833.    express, written permission in advance from the author.
  834.  
  835.    Latest program releases may be found at the Information Exchange BBS, 202-
  836.    433-6639 (2400+ baud).
  837.  
  838.  
  839.    TECHNICAL PROBLEMS
  840.  
  841.    If you encounter problems when using the Software (which can be replicated
  842.    in the absence of other resident utilities), please write to the Author at
  843.    the address above providing your name and address, program version number,
  844.    machine model and configuration, and a description of the problem(s). When
  845.    feasible, corrections for such problems may be incorporated in new program
  846.    releases. Technical support is limited to registered users; correspondence
  847.    from nonregistered users may not be answered.
  848.  
  849.                 ----------------
  850.  
  851.    WARRANTY DISCLAIMER
  852.  
  853.    The Author cannot and does not warrant that any functions contained in the
  854.    Software will meet your requirements, or that its operations will be error
  855.    free.  The entire risk as to the Software performance or quality, or both,
  856.    is solely with the user and not the Author.  You assume responsibility for
  857.    the selection of the program to achieve your intended results, and for the
  858.    installation, use, and results obtained from the Software.
  859.  
  860.    The Author makes no warranty, either implied or expressed, including with-
  861.    out limitation any warranty with respect to this Software documented here,
  862.    its quality, performance, or fitness for a particular purpose. In no event
  863.    shall the Author be liable to you for damages, whether direct or indirect,
  864.    incidental, special, or consequential arising out the use of or any defect
  865.    in the Software, even if the Author has been advised of the possibility of
  866.    such damages, or for any claim by any other party.
  867.  
  868.    All other warranties of any kind, either express or implied, including but
  869.    not limited to the implied warranties of merchantability and fitness for a
  870.    particular purpose, are expressly excluded.
  871.  
  872.  
  873.    LIMITATION OF REMEDIES
  874.  
  875.    The information contained in the documentation for the Software is subject
  876.    to change without notice.
  877.  
  878.    The Author's entire liability, and your exclusive remedy shall be: (1) the
  879.    replacement of an original Software diskette not meeting the above Limited
  880.    Warranty and which is returned to the Author along with proof of purchase,
  881.    or (2), if the Author is unable to deliver a replacement diskette which is
  882.    free of defects, you may terminate the License Agreement by returning this
  883.    Software and the corresponding license fee will be returned.
  884.  
  885.    By using the Software, you acknowledge (1) to have read and understood all
  886.    parts of this document and (2) to have agreed with and accepted all of its
  887.    provisions without any reservation.
  888.  
  889.                 ----------------
  890.  
  891.    Refer all inquiries to:
  892.                 FM de Monasterio
  893.                 P.O. Box 219
  894.                 Cabin John, MD 20818-0219
  895.                 USA
  896.  
  897.  ------------------------------------------------------------------------------
  898.  [END]
  899.